package com.guess.study.designpattern.strategy.strategyenum;

/**
 * Created by tianran on 2019-06-24.
 */
public enum Calculator {
    PLUS("+") {
        public int exec(int x, int y) {
            return x + y;
        }
    },
    MINUS("-") {
        public int exec(int x, int y) {
            return x - y;
        }
    };

    private final String symbol;

    Calculator(String symbol) {
        this.symbol = symbol;
    }

    public String getSymbol() {
        return this.symbol;
    }

    /**
     * 声明一个抽象方法
     * 枚举类型中的抽象方法必须被它的所有常量中的具体方法所覆盖（被称为特定于常量的方法实现）
     */
    public abstract int exec(int a, int b);
}
